Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Data synchronization</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Data_synchronization"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.math.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Data_synchronization rootpage-Data_synchronization skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Data synchronization</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">

<p><b>Data synchronization</b> is the process of establishing <a href="Consistency_(database_systems)" title="Consistency (database systems)">consistency</a> between source and target <a href="Data_store" title="Data store">data stores</a>, and the continuous harmonization of the data over time. It is fundamental to a wide variety of applications, including file synchronization and mobile device synchronization.
Data synchronization can also be useful in encryption for synchronizing <a href="Key_server_(cryptographic)" title="Key server (cryptographic)">public key servers</a>.
</p><p>Data synchronization is needed to update and keep multiple copies of a set of data coherent with one another or to maintain <a href="Data_integrity" title="Data integrity">data integrity</a>, Figure 3.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> For example, database replication is used to keep multiple copies of data synchronized with database servers that store data in different locations.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Examples">Examples</h2></div>
<p>Examples include:
</p>
<ul><li><a href="File_synchronization" title="File synchronization">File synchronization</a>, such as syncing a hand-held MP3 player to a desktop computer;</li>
<li><a href="Cluster_file_system" class="mw-redirect" title="Cluster file system">Cluster file systems</a>, which are <a href="File_system" title="File system">file systems</a> that maintain data or indexes in a coherent fashion across a whole <a href="Computing_cluster" class="mw-redirect" title="Computing cluster">computing cluster</a>;</li>
<li><a href="Cache_coherency" class="mw-redirect" title="Cache coherency">Cache coherency</a>, maintaining multiple copies of data in sync across multiple <a href="Cache_(computing)" title="Cache (computing)">caches</a>;</li>
<li><a href="RAID" title="RAID">RAID</a>, where data is written in a redundant fashion across multiple disks, so that the loss of any one disk does not lead to a loss of data;</li>
<li><a href="Database_replication" class="mw-redirect" title="Database replication">Database replication</a>, where copies of data on a <a href="Database" title="Database">database</a> are kept in sync, despite possible large geographical separation;</li>
<li><a href="Journaling_file_system" title="Journaling file system">Journaling</a>, a technique used by many modern file systems to make sure that file metadata are updated on a disk in a coherent, consistent manner.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Challenges">Challenges</h2></div>
<p>Some of the challenges which user may face in data synchronization:
</p>
<ul><li>data formats complexity;</li>
<li>real-timeliness;</li>
<li>data security;</li>
<li>data quality;</li>
<li>performance.</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Data_formats_complexity">Data formats complexity</h3></div>
<p>Data formats tend to grow more complex with time as the organization grows and evolves. This results not only in building simple interfaces between the two applications (source and target), but also in a need to transform the data while passing them to the target application. <a href="Extract%2C_transform%2C_load" title="Extract, transform, load">ETL</a> (extraction transformation loading) tools can be helpful at this stage for managing data format complexities.
</p>
<div class="mw-heading mw-heading3"><h3 id="Real-timeliness">Real-timeliness</h3></div>
<p>In real-time systems, customers want to see the current status of their order in e-shop, the current status of a parcel delivery—a real time parcel tracking—, the current balance on their account, etc. This shows the need of a real-time system, which is being updated as well to enable smooth manufacturing process in real-time, e.g., ordering material when enterprise is running out stock, synchronizing customer orders with manufacturing process, etc. From real life, there exist so many examples where real-time processing gives successful and competitive advantage.
</p>
<div class="mw-heading mw-heading3"><h3 id="Data_security">Data security</h3></div>
<p>There are no fixed rules and policies to enforce data security. It may vary depending on the system which you are using. Even though the security is maintained correctly in the source system which captures the data, the security and information access privileges must be enforced on the target systems as well to prevent any potential misuse of the information. This is a serious issue and particularly when it comes for handling secret, confidential and personal information. So because of the sensitivity and confidentiality, data transfer and all in-between information must be encrypted.
</p>
<div class="mw-heading mw-heading3"><h3 id="Data_quality">Data quality</h3></div>
<p>Data quality is another serious constraint. For better management and to maintain good quality of data, the common practice is to store the data at one location and share with different people and different systems and/or applications from different locations. It helps in preventing inconsistencies in the data.
</p>
<div class="mw-heading mw-heading3"><h3 id="Performance">Performance</h3></div>
<p>There are five different phases involved in the data synchronization process:
</p>
<ul><li><a href="Data_extraction" title="Data extraction">data extraction</a> from the source (or master, or main) system;</li>
<li><a href="Data_transfer" class="mw-redirect" title="Data transfer">data transfer</a>;</li>
<li><a href="Data_transformation" class="mw-redirect" title="Data transformation">data transformation</a>;</li>
<li>data load to the target system.</li>
<li>data updation</li></ul>
<p>Each of these steps is critical. In case of large amounts of data, the synchronization process needs to be carefully planned and executed to avoid any negative impact on performance.
</p>
<div class="mw-heading mw-heading2"><h2 id="File-based_solutions">File-based solutions</h2></div>
<p>There are tools available for <a href="File_synchronization" title="File synchronization">file synchronization</a>, <a href="Version_control" title="Version control">version control</a> (<a href="Concurrent_Versions_System" title="Concurrent Versions System">CVS</a>, <a href="Subversion_(software)" class="mw-redirect" title="Subversion (software)">Subversion</a>, etc.), <a href="Distributed_filesystem" class="mw-redirect" title="Distributed filesystem">distributed filesystems</a> (<a href="Coda_(file_system)" title="Coda (file system)">Coda</a>, etc.), and <a href="Mirror_website" class="mw-redirect" title="Mirror website">mirroring</a> (<a href="Rsync" title="Rsync">rsync</a>, etc.), in that all these attempt to keep sets of files synchronized. However, only version control and file synchronization tools can deal with modifications to more than one copy of the files.
</p>
<ul><li>File synchronization is commonly used for home backups on external <a href="Hard_drive" class="mw-redirect" title="Hard drive">hard drives</a> or updating for transport on <a href="USB_flash_drives" class="mw-redirect" title="USB flash drives">USB flash drives</a>. The automatic process prevents copying already identical files, thus can save considerable time relative to a manual copy, also being faster and less error prone.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup></li>
<li><a href="Version_control" title="Version control">Version control</a> tools are intended to deal with situations where more than one user attempts to simultaneously modify the same file, while file synchronizers are optimized for situations where only one copy of the file will be edited at a time. For this reason, although version control tools can be used for file synchronization, dedicated programs require less <a href="Computational_overhead" class="mw-redirect" title="Computational overhead">overhead</a>.</li>
<li><a href="Distributed_filesystem" class="mw-redirect" title="Distributed filesystem">Distributed filesystems</a> may also be seen as ensuring multiple versions of a file are synchronized. This normally requires that the devices storing the files are always connected, but some distributed file systems like <a href="Coda_(file_system)" title="Coda (file system)">Coda</a> allow disconnected operation followed by reconciliation. The merging facilities of a distributed file system are typically more limited than those of a version control system because most file systems do not keep a version graph.</li>
<li><a href="Mirror_website" class="mw-redirect" title="Mirror website">Mirror (computing)</a>: A mirror is an exact copy of a data set. On the Internet, a mirror site is an exact copy of another Internet site. Mirror sites are most commonly used to provide multiple sources of the same information, and are of particular value as a way of providing reliable access to large downloads.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Theoretical_models">Theoretical models</h2></div>
<p>Several theoretical models of data synchronization exist in the research literature, and the problem is also related to the problem of <a href="Slepian%E2%80%93Wolf_coding" title="Slepian–Wolf coding">Slepian–Wolf coding</a> in <a href="Information_theory" title="Information theory">information theory</a>. The models are classified based on how they consider the data to be synchronized.
</p>
<div class="mw-heading mw-heading3"><h3 id="Unordered_data">Unordered data</h3></div>
<p>The problem of synchronizing unordered data (also known as the <b>set reconciliation problem</b>) is modeled as an attempt to compute the <a href="Symmetric_difference" title="Symmetric difference">symmetric difference</a>
<span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle S_{A}\oplus S_{B}=(S_{A}-S_{B})\cup (S_{B}-S_{A})}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>S</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>A</mi>
</mrow>
</msub>
<mo>⊕<!-- ⊕ --></mo>
<msub>
<mi>S</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>B</mi>
</mrow>
</msub>
<mo>=</mo>
<mo stretchy="false">(</mo>
<msub>
<mi>S</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>A</mi>
</mrow>
</msub>
<mo>−<!-- − --></mo>
<msub>
<mi>S</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>B</mi>
</mrow>
</msub>
<mo stretchy="false">)</mo>
<mo>∪<!-- ∪ --></mo>
<mo stretchy="false">(</mo>
<msub>
<mi>S</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>B</mi>
</mrow>
</msub>
<mo>−<!-- − --></mo>
<msub>
<mi>S</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>A</mi>
</mrow>
</msub>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle S_{A}\oplus S_{B}=(S_{A}-S_{B})\cup (S_{B}-S_{A})}</annotation>
</semantics>
</math></span><img src="./50ac42fd46ff9cc825d4da970ed7db16560b0672.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:35.204ex; height:2.843ex;" alt="{\displaystyle S_{A}\oplus S_{B}=(S_{A}-S_{B})\cup (S_{B}-S_{A})}" loading="lazy"></span> between two remote sets <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle S_{A}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>S</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>A</mi>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle S_{A}}</annotation>
</semantics>
</math></span><img src="./f581ca4fd5bc6d22270c6050703cf23e5b840435.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.89ex; height:2.509ex;" alt="{\displaystyle S_{A}}" loading="lazy"></span>
and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle S_{B}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>S</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>B</mi>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle S_{B}}</annotation>
</semantics>
</math></span><img src="./0e02453279ee46e8561b89f3b746ab1f0509e6ce.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.905ex; height:2.509ex;" alt="{\displaystyle S_{B}}" loading="lazy"></span> of b-bit numbers.<sup id="cite_ref-minksy-trachtenberg-zippel_3-0" class="reference"><a href="#cite_note-minksy-trachtenberg-zippel-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> Some solutions to this problem are typified by:
</p>
<dl><dt>Wholesale transfer</dt>
<dd>In this case all data is transferred to one host for a local comparison.</dd>
<dt>Timestamp synchronization</dt>
<dd>In this case all changes to the data are marked with timestamps. Synchronization proceeds by transferring all data with a timestamp later than the previous synchronization.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup></dd>
<dt>Mathematical synchronization</dt>
<dd>In this case data are treated as mathematical objects and synchronization corresponds to a mathematical process.<sup id="cite_ref-minksy-trachtenberg-zippel_3-1" class="reference"><a href="#cite_note-minksy-trachtenberg-zippel-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup></dd></dl>
<div class="mw-heading mw-heading3"><h3 id="Ordered_data">Ordered data</h3></div>
<p>In this case, two remote strings <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \sigma _{A}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>σ<!-- σ --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>A</mi>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \sigma _{A}}</annotation>
</semantics>
</math></span><img src="./399e9d09fb7fc7fc1f286c97d3bde5ef6a814fbe.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.792ex; height:2.009ex;" alt="{\displaystyle \sigma _{A}}" loading="lazy"></span> and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \sigma _{B}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>σ<!-- σ --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>B</mi>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \sigma _{B}}</annotation>
</semantics>
</math></span><img src="./6daf3fafcc7df4a3fda4f23f5c09b9c3944c346f.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.807ex; height:2.009ex;" alt="{\displaystyle \sigma _{B}}" loading="lazy"></span> need to be reconciled. Typically, it is assumed that these strings differ by up to a fixed number of <b>edits</b> (i.e. character insertions, deletions, or modifications). Then data synchronization is the process of reducing <a href="Edit_distance" title="Edit distance">edit distance</a> between <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \sigma _{A}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>σ<!-- σ --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>A</mi>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \sigma _{A}}</annotation>
</semantics>
</math></span><img src="./399e9d09fb7fc7fc1f286c97d3bde5ef6a814fbe.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.792ex; height:2.009ex;" alt="{\displaystyle \sigma _{A}}" loading="lazy"></span> and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \sigma _{B}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>σ<!-- σ --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>B</mi>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \sigma _{B}}</annotation>
</semantics>
</math></span><img src="./6daf3fafcc7df4a3fda4f23f5c09b9c3944c346f.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.807ex; height:2.009ex;" alt="{\displaystyle \sigma _{B}}" loading="lazy"></span>, up to the ideal distance of zero. This is applied in all filesystem based synchronizations (where the data is ordered). Many <a class="mw-selflink-fragment" href="#Practical_solutions">practical applications</a> of this are discussed or referenced above.
</p><p>It is sometimes possible to transform the problem to one of unordered data through a process known as <a href="W-shingling" title="W-shingling">shingling</a> (splitting the strings into <i>shingles</i>).<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Error_handling">Error handling</h2></div>
<p>In fault-tolerant systems, distributed databases must be able to cope with the loss or corruption of (part of) their data. The first step is usually <a href="Replication_(computing)" title="Replication (computing)">replication</a>, which involves making multiple copies of the data and keeping them all up to date as changes are made. However, it is then necessary to decide which copy to rely on when loss or corruption of an instance occurs.
</p><p>The simplest approach is to have a single master instance that is the sole source of truth. Changes to it are replicated to other instances, and one of those instances becomes the new master when the old master fails.
</p><p><a href="Paxos_(computer_science)" title="Paxos (computer science)">Paxos</a> and <a href="Raft_(computer_science)" class="mw-redirect" title="Raft (computer science)">Raft</a> are more complex protocols that exist to solve problems with transient effects during failover, such as two instances thinking they are the master at the same time.
</p><p><a href="Secret_sharing" title="Secret sharing">Secret sharing</a> is useful if failures of whole nodes are very common. This moves synchronization from an explicit recovery process to being part of each read, where a read of some data requires retrieving encoded data from several different nodes. If corrupt or out-of-date data may be present on some nodes, this approach may also benefit from the use of an <a href="Error_correction_code" title="Error correction code">error correction code</a>.
</p><p><a href="Distributed_hash_table" title="Distributed hash table">DHTs</a> and <a href="Blockchain" title="Blockchain">Blockchains</a> try to solve the problem of synchronization between many nodes (hundreds to billions).
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="SyncML" title="SyncML">SyncML</a>, a standard mainly for calendar, contact and email synchronization</li>
<li><a href="Synchronization_(computer_science)" title="Synchronization (computer science)">Synchronization (computer science)</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFNakataniChuangZhou2006" class="citation journal cs1">Nakatani, Kazuo; Chuang, Ta-Tao; Zhou, Duanning (2006). <a rel="nofollow" class="external text" href="https://doi.org/10.17705%2F1cais.01744">"Data Synchronization Technology: Standards, Business Values and Implications"</a>. <i>Communications of the Association for Information Systems</i>. <b>17</b>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.17705%2F1cais.01744">10.17705/1cais.01744</a></span>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a>&nbsp;<a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/1529-3181">1529-3181</a>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite id="CITEREFA._Tridgell1999" class="citation web cs1"><a href="Andrew_Tridgell" title="Andrew Tridgell">A. Tridgell</a> (February 1999). <a rel="nofollow" class="external text" href="https://samba.org/~tridge/phd_thesis.pdf">"Efficient algorithms for sorting and synchronization"</a> <span class="cs1-format">(PDF)</span>. PhD thesis. The Australian National University.</cite></span>
</li>
<li id="cite_note-minksy-trachtenberg-zippel-3"><span class="mw-cite-backlink">^ <a href="#cite_ref-minksy-trachtenberg-zippel_3-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-minksy-trachtenberg-zippel_3-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text">
<cite id="CITEREFMinsky,_Y.Ari_TrachtenbergZippel,_R.2003" class="citation journal cs1">Minsky, Y.; Ari Trachtenberg; Zippel, R. (2003). "Set reconciliation with nearly optimal communication complexity". <i>IEEE Transactions on Information Theory</i>. <b>49</b> (9): <span class="nowrap">2213–</span>2218. <a href="CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a>&nbsp;<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.73.5806">10.1.1.73.5806</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FTIT.2003.815784">10.1109/TIT.2003.815784</a>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20020311145325/http://www.pumatech.com/enterprise/wp-1.html">"Palm developer knowledgebase manuals"</a>. Archived from <a rel="nofollow" class="external text" href="http://www.pumatech.com/enterprise/wp-1.html">the original</a> on 2002-03-11<span class="reference-accessdate">. Retrieved <span class="nowrap">2007-01-09</span></span>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite id="CITEREFAri_TrachtenbergD._StarobinskiS._Agarwal" class="citation conference cs1">Ari Trachtenberg; D. Starobinski; S. Agarwal. <a rel="nofollow" class="external text" href="http://people.bu.edu/staro/infocom02pda.pdf">"Fast PDA Synchronization Using Characteristic Polynomial Interpolation"</a> <span class="cs1-format">(PDF)</span>. <i>IEEE INFOCOM 2002</i>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FINFCOM.2002.1019402">10.1109/INFCOM.2002.1019402</a>.</cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text">Y. Minsky and A. Trachtenberg, Scalable set reconciliation, Allerton Conference on Communication, Control, and Computing, Oct. 2002</span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite id="CITEREFS._AgarwalV._ChauhanAri_Trachtenberg2006" class="citation journal cs1">S. Agarwal; V. Chauhan; Ari Trachtenberg (November 2006). <a rel="nofollow" class="external text" href="http://ipsit.bu.edu/documents/puzzles_journal.pdf">"Bandwidth efficient string reconciliation using puzzles"</a> <span class="cs1-format">(PDF)</span>. <i>IEEE Transactions on Parallel and Distributed Systems</i>. <b>17</b> (11): <span class="nowrap">1217–</span>1225. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FTPDS.2006.148">10.1109/TPDS.2006.148</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:4300693">4300693</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2007-05-23</span></span>.</cite></span>
</li>
</ol></div></div>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Data8" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div id="Data8" style="font-size:114%;margin:0 4em"><a href="Data" title="Data">Data</a></div></th></tr><tr><td colspan="2" class="navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Data_acquisition" title="Data acquisition">Acquisition</a></li>
<li><a href="Data_augmentation" title="Data augmentation">Augmentation</a></li>
<li><a href="Data_analysis" title="Data analysis">Analysis</a></li>
<li><a href="Data_anonymization" title="Data anonymization">Anonymization</a></li>
<li><a href="Data_archaeology" title="Data archaeology">Archaeology</a></li>
<li><a href="Big_data" title="Big data">Big</a></li>
<li><a href="Data_cleansing" title="Data cleansing">Cleansing</a></li>
<li><a href="Data_collection" title="Data collection">Collection</a></li>
<li><a href="Data_compression" title="Data compression">Compression</a></li>
<li><a href="Data_corruption" title="Data corruption">Corruption</a></li>
<li><a href="Data_curation" title="Data curation">Curation</a></li>
<li><a href="Data_deduplication" title="Data deduplication">Deduplication</a></li>
<li><a href="Data_degradation" title="Data degradation">Degradation</a></li>
<li><a href="Data_de-identification" class="mw-redirect" title="Data de-identification">De-identification</a></li>
<li><a href="Data_ecosystem" title="Data ecosystem">Ecosystem</a></li>
<li><a href="Data_editing" title="Data editing">Editing</a></li>
<li><a href="Data_engineering" title="Data engineering">Engineering</a></li>
<li><a href="Data_erasure" title="Data erasure">Erasure</a></li>
<li><a href="Extract%2C_transform%2C_load" title="Extract, transform, load">ETL</a>/<a href="Extract%2C_load%2C_transform" title="Extract, load, transform">ELT</a>
<ul><li><a href="Data_extraction" title="Data extraction">Extract</a></li>
<li><a href="Data_transformation" class="mw-redirect" title="Data transformation">Transform</a></li>
<li><a href="Data_loading" title="Data loading">Load</a></li></ul></li>
<li><a href="Data_ethics" class="mw-redirect" title="Data ethics">Ethics</a></li>
<li><a href="Data_exhaust" title="Data exhaust">Exhaust</a></li>
<li><a href="Data_exploration" title="Data exploration">Exploration</a></li>
<li><a href="Data_farming" title="Data farming">Farming</a></li>
<li><a href="Data_format_management" title="Data format management">Format management</a></li>
<li><a href="Data_fusion" title="Data fusion">Fusion</a></li>
<li><a href="Data_governance" title="Data governance">Governance</a>
<ul><li><a href="Data_cooperative" title="Data cooperative">Cooperatives</a></li></ul></li>
<li><a href="Data_infrastructure" title="Data infrastructure">Infrastructure</a></li>
<li><a href="Data_integration" title="Data integration">Integration</a></li>
<li><a href="Data_integrity" title="Data integrity">Integrity</a></li>
<li><a href="Data_library" class="mw-redirect" title="Data library">Library</a></li>
<li><a href="Data_lineage" title="Data lineage">Lineage</a></li>
<li><a href="Data_loss" title="Data loss">Loss</a></li>
<li><a href="Data_management" title="Data management">Management</a></li>
<li><a href="Metadata" title="Metadata">Meta</a></li>
<li><a href="Data_migration" title="Data migration">Migration</a></li>
<li><a href="Data_mining" title="Data mining">Mining</a></li>
<li><a href="Data_philanthropy" title="Data philanthropy">Philanthropy</a></li>
<li><a href="Data_pre-processing" class="mw-redirect" title="Data pre-processing">Pre-processing</a></li>
<li><a href="Data_preservation" title="Data preservation">Preservation</a></li>
<li><a href="Data_processing" title="Data processing">Processing</a></li>
<li><a href="Information_privacy" title="Information privacy">Protection (privacy)</a></li>
<li><a href="Data_publishing" title="Data publishing">Publishing</a>
<ul><li><a href="Open_data" title="Open data">Open data</a></li></ul></li>
<li><a href="Data_recovery" title="Data recovery">Recovery</a></li>
<li><a href="Data_reduction" title="Data reduction">Reduction</a></li>
<li><a href="Data_redundancy" title="Data redundancy">Redundancy</a></li>
<li><a href="Data_re-identification" title="Data re-identification">Re-identification</a></li>
<li><a href="Data_remanence" title="Data remanence">Remanence</a></li>
<li><a href="Data_rescue" title="Data rescue">Rescue</a></li>
<li><a href="Data_retention" title="Data retention">Retention</a></li>
<li><a href="Data_quality" title="Data quality">Quality</a></li>
<li><a href="Data_science" title="Data science">Science</a></li>
<li><a href="Data_scraping" title="Data scraping">Scraping</a></li>
<li><a href="Data_scrubbing" title="Data scrubbing">Scrubbing</a></li>
<li><a href="Data_security" title="Data security">Security</a></li>
<li><a href="Data_sharing" title="Data sharing">Sharing</a></li>
<li><a href="Data_steward" title="Data steward">Stewardship</a></li>
<li><a href="Data_storage" title="Data storage">Storage</a></li>
<li><a href="Data_structure" title="Data structure">Structure</a></li>

<li><a href="Topological_data_analysis" title="Topological data analysis">Topological data analysis</a></li>
<li><a href="Data_type" title="Data type">Type</a></li>
<li><a href="Data_validation" title="Data validation">Validation</a></li>
<li><a href="Data_warehouse" title="Data warehouse">Warehouse</a></li>
<li><a href="Data_wrangling" title="Data wrangling">Wrangling/munging</a></li></ul>
</div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2024-01-24" href="https://en.wikipedia.org/wiki/?title=Data_synchronization&amp;oldid=1198572039">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>